活动 | [修订版]深度学习Meetup演讲速记——Deep Learning for Recommender Systems
上周六的深度学习Meetup现场交流很热烈(活动 | 深度学习Meetup活动概要(内附PPT下载地址)),为了让更多的粉丝了解到交流的内容,近期我们将逐步推出演讲的会议速记,共大家学习和交流。敬请关注!
以下为演讲正文:
首先,我会简单介绍推荐系统以及传统推荐系统的一些相关技术。那么,什么是推荐系统呢?它的主要功能是帮助用户找到符合他需求的个性化的商品。一方面,它可以在如今信息爆炸的时代高效的检索商品,另一方面,它可以快速的帮助用户找到相应的商品,有向导和咨询的功能。如电商系统的推荐商品、云音乐给用户推荐音乐等。
第一类是比较熟悉的、经常使用的协同过滤的技术,它使用的一方面是用户的信息,另一方面是和用户有相似行为的群体的信息,协同过滤技术就是根据这一群体的信息给用户做推荐。
第二类技术是基于内容的推荐,它用到的一方面是用户的信息,另一方面是商品的显性相关属性信息,基于内容的推荐就是向用户推荐他可能浏览或者购买过的相似产品的信息。
还有一类技术是混合技术,会运用不同的输入和技术共同进行推荐。
接下来简单看一下传统推荐技术的优点和缺点。基于内容的推荐,它的优点是:第一,简单直接;第二,有可解释的结果;第三,可以比较不同产品之间的相似度。它的缺点是对于从来没有过购买行为的用户会有一个冷启动的问题,另外,基于内容的推荐必须要得到关于产品显性的属性信息。相比较之下,协同过滤技术就不需要这些信息,它是根据用户与和用户行为相似的群体的信息来进行推荐的,它的一个优点就是可以给用户推荐出一些新奇的、用户可能没有购买过的商品。它的缺点,首先也是新用户的冷启动问题,然后是因为用户与商品之间的交互数据不够多,有数据稀疏的问题。最后相对于基于内容的推荐技术,协同过滤技术对结果没有那么好的解释性
那接下来我们就可以看看深度学习是如何应用到推荐系统中的。第一个问题就是,为什么需要深度学习?深度学习能给系统带来什么?这里我们通过学习近些年深度学习大牛们在推荐系统上的研究发展,做了一些总结,下边我们将结合具体的文献和应用来看一看,深度学习如何应用到推荐系统中: 2.1 通过深度学习我们可以学习隐藏特征
这里有一个简单的RBM模型,有两层,下面一层是可视层,主要是观察输入的数据。上面一层是隐藏层,它主要是根据之前得到的数据学习和生成隐藏的特征,并还原和预测出可视层的数据。这两个层是全连接的,层内是没有连接的。这样我们就可以把它运用到协同过滤的技术中。
用户对电影的评分会出现在可视层中,比如他对电影评分为3,那么第列中第三个格子是黑色的,其他没有,以此类推。可视层的单元数目是等于用户评价过的电影的数目,但是隐藏层单元的数目是固定的,它会通过共享用户评价过的电影的权重最终来实现协同过滤。总的来说,通过这样的方法,我们首先可以观测用户对于电影的评分数据,学习出用户抽象的隐藏特征,然后通过这些特征还原生成出可见层的评分数据,最后根据这些数据在缺失数据中的预测结果来形成最终的推荐结果。
上述的RBM还只是一个两层的浅层模型,进一步地,通过多层的RBM,我们可以学习出多层次的特征表示。这也正是深度学习神奇和强大的地方,通过非监督和监督的学习,我们可以将显示的特征学习出表示不同含义的的多层次的抽象特征。图上的例子主要是利用深度学习来解决群组推荐的问题。群组推荐是推荐系统的一个细分领域,是给一个固定的群组做推荐,而群组中是有不同的成员的。
通常,我们是把这个群组当做一个虚拟的用户,再利用传统的推荐技术进行推荐。 但这里有个问题,因为一个群组包含不同的群组成员,在推荐时我们需要平衡不同成员之间的偏好,要去最大化群组成员的效用,在这幅图右侧,首先使用DBN学习出群组成员的偏好,再进而向上抽象分离出用户个性化的偏好(individual feature),和集体偏好(collective feature)。在左侧,一个双臂的RBM,将群组的偏好以及用户的集体特征作为可见层来进一步地学习出全面的群组特征。这样通过深度学习,我们可以从数据中学习多层次的抽象特征表示。
这里的说的内容信息包括两种:一种内容信息是异质的内容信息,举个例子,用户听音乐,不同歌曲的歌手,类型,流派等文字信息,与歌曲中的音频信号信息,他们是异质的。我们人脑通过可以通过听觉欣赏出这首乐曲是抒情的钢琴曲,还是抖腿的电子乐。而现在通过深度学习的技术,我们也可以将异质的内容学习抽象成同质的语义特征。 在NIPS 的这篇文章中,他们通过深度的CNN来学习隐语义特征,图中是根据这些歌手歌曲的学习到的隐语义特征进行聚类的可视化结果,我们可以看到,不同的颜色可以很好地表示不同的音乐流派,例如红色的是hip-hop,绿色的是摇滚,黄色的是pop,蓝色的是电子乐。那么当音乐的显性特征缺失时,我们就可以用这种方法找出它的隐性特征,很好的解决推荐时的冷启动问题。
另一种是跨域的内容信息,当一个用户喜欢看恐怖电影时,他有很大可能也喜欢看恐怖小说;当一个用户出行时喜欢坐头等舱,那他就有很大可能也会订高端的酒店。对于一个用户来说,他在不同域上的特征是相通的,但在不同域上的数据,我们无法直接把他们放在一起运用。通过深度学习可以将不同域上的特征进行不断抽象,对不同域上的数据进行同步的学习。图中的例子是多媒体推荐,它使用多个DNN进行跨域的推荐。通过这种方法,我们可以通过共同学习各个域上的数据抽象出用户在不同域上的隐式特征,从而很好的解决了跨域的冷启动问题。
从前边的介绍和应用我们可以看到,深度学习具有很强的特征抽象和学习能力,并且能够使我们应用更多的传统推荐系统无法直接使用的跨域和异质的内容信息。随着大数据时代的到来,对于这些数据的使用已经变得更加容易,因此我们可以将越来越多的数据融合使用到我们的推荐系统中。然而深度模型由于它的高复杂度,对于高纬度的特别是超高纬度的稀疏数据存在比较大的问题,假设我们有1000万维的稀疏特征,隐藏层的数目假设只有1000个,那么就会产生100亿个参数,我们可能将会需要万亿个数据才能有效的训练出这些参数。这在很多场景中是不可能得到的,即使有这么多的数据也需要非常大的计算量来学习这些参数。接下来,我们会详细介绍一个能够在高维稀疏数据上深广模型。 这里深广模型,深就是深度模型,其实就是DNN,广就是高维稀疏的LR模型。
首先,我们看一下高维稀疏数据上应用的LR模型。其实我们可以把逻辑回归模型看成一个简单的两层的神经网络,下面的神经网络是它输入的高维稀疏的数据,点亮的神经元为1的、被激活的,未点亮的就是为0、没有被激活的, 这里高维稀疏数据的一大特点是大部分的输入数据都是为0(未激活)的。LR模型对于高维稀疏的数据有非常好的性能,并且可以通过交叉特征来学习与目标Label之间的关联。主要的缺点是需要人工的去设计交叉特征,同时模型比较简单,无法很好的挖掘用户与产品需求内在的相关性。
明白了高维稀疏数据上的深度模型以及广度模型(LR),那么这里的深广模型就很简单了,它是广度模型和深度模型的一个联合模型,这里的联合模型指的是一个模型,他们的参数是联合训练的。在深广模型中,深度模型可以挖掘用户与产品,以及各个属性之间的隐性的关系,而广度模型可以使用更少的参数高效地记忆特征与目标Label之间的线性关联。
接下来,我们将结合一个金融行业理财产品推荐的具体的案例,与大家进一步地分享一下我们使用深度模型在推荐系统上的应用及探索。
首先看一下这个精准营销案例的应用场景。一个场景是理财产品的推荐,它包括线下推荐,例如帮助客户经理给理财产品到期的顾客或者是有新的理财需求的顾客推荐符合其个性化需求的理财产品;同时当用户访问掌上银行APP和或者网站时也可以进行在线的线上推荐。另一个场景是获客, 即当银行发售一个新的理财产品时,为其推荐最有购买需求的客户群体。由于是新发售的理财产品,这其实也是一个冷启动的推荐问题。
接下来是数据准备,我们会从数据层的Inceptor中提取出需要的数据,其中包括标记的数据、未标记的数据以及来自其他相似域的数据。标记数据包括银行理财产品的购买记录,未标记的数据包括用户的个人属性和用户画像,以及理财产品的具体信息等等。然后,我们利用discover生成之前说过的高维稀疏的数据,输入到深度模型中,最后得到推荐结果。
最后的效果看这个图,总的来说,使用深广模型的效果最好。蓝色的柱子表示对所有用户的推荐效果,橙色表示对新用户的推荐效果。从图中看出,其实对于新用户,我们也有非常好的推荐效果。
最后,分享一下我们在这个过程中的几点tricks。首先,我们使用了更多的上下文信息和内容信息,这是可以帮助我们解决推荐系统中的冷启动问题的。第二,Dropout可以防止over-fitting,但是它也可能会带来under-fitting,也就是学习的不够。第三,对于深度模型来说,它可以有很好的效果,但并不是越深越好。最后的最后,是一个今天演讲内容的简单总结,可以参考PPT。我们相信随着深度学习技术的不断成熟,它会在推荐系统中变得越来越流行,并成为推荐系统领域中的一项非常重要的技术。
(演讲内容到此结束)
活动回顾:活动 | 深度学习Meetup活动概要(内附PPT下载地址)
演讲速记1:活动 | 深度学习Meetup演讲速记——基于深度学习的文本语义分析
演讲速记2:活动 | 深度学习Meetup演讲速记——使用 CUDA 加速R的应用
回复关键字,获取更多资讯
简介 | 产品 | 技术 | 案例集 | 培训 | 白话大数据评测 投资 | 新手上路 | Holodesk | TED视频金融 | 电力 | 视频监控 | 运营商 |交通 税务 | 电商 | 医疗 | 快递